<?php
// +----------------------------------------------------------------------
// | B5Yii2CMF V3.0 [快捷通用基础管理开发平台]
// +----------------------------------------------------------------------
// | Author: 冰舞 <357145480@qq.com>
// +----------------------------------------------------------------------
declare (strict_types=1);

namespace common\models\system;

use yii\behaviors\TimestampBehavior;
use yii\db\ActiveRecord;

/**
 * This is the model class for table "sys_notice".
 *
 * @property int $id 公告ID
 * @property string $title 公告标题
 * @property string|null $type 公告类型（1通知 2公告）
 * @property string|null $summary 概要
 * @property string|null $content 公告内容
 * @property string|null $status 公告状态（1正常 0关闭）
 * @property string|null $create_by 创建人
 * @property string|null $update_by 更新人
 * @property int|null $create_time 创建时间
 * @property int|null $update_time 更新时间
 */
class Notice extends ActiveRecord
{
    /**
     * {@inheritdoc}
     */
    public static function tableName(): string
    {
        return 'sys_notice';
    }

    /**
     * {@inheritdoc}
     */
    public function rules(): array
    {
        return [
            [['title', 'type'], 'required'],

            [['summary', 'type', 'status', 'create_by', 'update_by', 'content'], 'default', 'value' => ''],
            [['status'], 'default', 'value' => '1'],

            [['title', 'type', 'status', 'summary'], 'trim'],

            ['status', 'in', 'range' => ['0', '1']],
            ['title', 'string', 'max' => 64],
            ['summary', 'string', 'max' => 128],
            [['create_by', 'update_by'], 'string', 'max' => 64],

            [['create_time', 'update_time'], 'safe'],
        ];
    }

    /**
     * {@inheritdoc}
     */
    public function attributeLabels(): array
    {
        return [
            'id' => '公告ID',
            'title' => '公告标题',
            'type' => '公告类型',
            'remark' => '简介',
            'content' => '公告内容',
            'status' => '公告状态',
            'create_by' => '创建人',
            'update_by' => '更新人',
            'create_time' => '创建时间',
            'update_time' => '更新时间',
        ];
    }

    /**
     * {@inheritdoc}
     */
    public function behaviors(): array
    {
        return [
            [
                'class' => TimestampBehavior::class,
                'attributes' => [
                    ActiveRecord::EVENT_BEFORE_INSERT => ['create_time', 'update_time'],
                    ActiveRecord::EVENT_BEFORE_UPDATE => ['update_time'],
                ],
                'value' => function () {
                    return time();
                }
            ]
        ];
    }
}
